qx.Class.define("caraffa.forms.Anotador",
{
extend : qx.ui.form.ow.FormTab,
construct : function ()
{
	this.base(arguments, "Anotador", "Anotador");	
	//RPC
	this._rpcAnotador = new qx.io.remote.Rpc();
	this._rpcAnotador.setTimeout(10000);
	this._rpcAnotador.setUrl("services/");
	this._rpcAnotador.setServiceName("anotador");
	
	this._grpNotas = new qx.ui.groupbox.GroupBox();
		this._grpNotas.setLayout(new qx.ui.layout.VBox(10));
		this._grpNotas.setWidth(350);
		
		this._txtFiltrar = new qx.ui.form.TextField();
			this._txtFiltrar.setValue("");
		this._mdlNotas = new qx.ui.table.model.Simple();
			this._mdlNotas.setColumns(["Codigo","Notas"]);
		this._tblNotas = new qx.ui.table.Table(this._mdlNotas);
			this._tblNotas.setStatusBarVisible(false);
			this._tblNotas.setColumnWidth(0, 80);
				this._tblNotas.getTableColumnModel().setColumnVisible(0,false);
			this._tblNotas.setColumnWidth(1, 320);
			this._tblNotas.setShowCellFocusIndicator(false);
			this._tblNotas.setColumnVisibilityButtonVisible(false);
			this._tblNotas.setWidth(350);
			this._tblNotas.setHeight(360);
			
	this._grpBotonera = new qx.ui.groupbox.GroupBox();
		this._grpBotonera.setWidth(350);
		this._grpBotonera.setLayout(new qx.ui.layout.HBox(20).set({alignX:"center"}));
		this._btnNueva = new qx.ui.form.Button("Nueva");		
		this._btnGuardar = new qx.ui.form.Button("Guardar");
		this._btnEliminar = new qx.ui.form.Button("Eliminar");
	this._grpBotonera.add(this._btnNueva);
	this._grpBotonera.add(this._btnGuardar);
	this._grpBotonera.add(this._btnEliminar);
	
	this._grpNotas.add(this._txtFiltrar);
	this._grpNotas.add(this._tblNotas);
	this._grpNotas.add(this._grpBotonera);
	
	this._grpNota = new qx.ui.groupbox.GroupBox();
		this._grpNota.setLayout(new qx.ui.layout.VBox(10));
		this._grpNota.setWidth(600);
		this._grpNota.setHeight(485);		
		this._txaNota = new qx.ui.form.ow.TextArea("Nueva Nota");
			this._txaNota.getText().setHeight(435);
			
	this._grpNota.add(this._txaNota);
	
	
	this.add(this._grpNotas,{top:0,left:0});
	this.add(this._grpNota,{top:0,left:360});
	this._attachEvents();	
},

members: {
	
	_attachEvents : function (){
		this.addListener('appear', this._initForm, this);
		this._txtFiltrar.addListener('input', this._getNotas, this);
		this._tblNotas.addListener('cellClick', this._getNota, this);
		this._tblNotas.addListener("keyup", function (e)
		{
			if ((e.getKeyIdentifier() == 'Up') || (e.getKeyIdentifier() == 'Down'))
			{
				this._getNota();
			}
		}, this);
		this._btnGuardar.addListener('execute',this._guardar,this);
		this._btnNueva.addListener('execute',this._nueva,this);
		this._btnEliminar.addListener('execute',this._eliminar,this);

	},
	_initForm : function(){	
		this._txaNota.getLabel().setValue("");
		this._txaNota.setValue("");
		this._txaNota.focus();
		this._getNotas();
	},
	_getNotas: function(){
		if (this._txtFiltrar.getValue().length >= 5)
		{
			try
			{
				var params = new Object();
				params.filtrar = this._txtFiltrar.getValue();
				var resNotas = this._rpcAnotador.callSync("getNotas", params);
				if(resNotas != null){
					this._tblNotas.getTableModel().setData(resNotas);
				}
				else{
					alert("No hay Notas con el filtro seleccionado");
				}
			}
			catch (ex)
			{
				alert(ex);
			}
		}
		// mostrar todos si no se agrego un filtro
		else if(this._txtFiltrar.getValue().length == 0){
			try
			{
				var params = new Object();
				params.filtrar = this._txtFiltrar.getValue();
				var resNotas = this._rpcAnotador.callSync("getNotas", params);
				if(resNotas != null){
					this._tblNotas.getTableModel().setData(resNotas);
				}
				else{
					alert("No hay Notas con el filtro seleccionado");
				}
			}
			catch (ex)
			{
				alert(ex);
			}
			this._txaNota.getText().setValue("");
		}
	},
	_getNota: function(){
		try{
			var params = new Object();
				params.cod_nota = this._mdlNotas.getValue(0, this._tblNotas.getFocusedRow());
			var resNota = this._rpcAnotador.callSync("getNota", params);
			this._txaNota.getLabel().setValue(resNota[0].titulo);
			this._txaNota.setValue(resNota[0].texto);
		}
		catch (ex){
			alert(ex);
		}

	},
	_guardar: function(){
		if(this._txaNota.getLabel().getValue()=="Nueva Nota"){
			try{
				var params = new Object();
					params.titulo = prompt ("Guardar Como:","");
					if(params.titulo != null){
						if(params.titulo == ""){
							alert("Debe ingresar un nombre a la nota");
						}
						else{
							params.texto = this._txaNota.getValue();
							var resGuardar = this._rpcAnotador.callSync("addNota", params);
							alert("Nota guardada");
							this._initForm();
						}
					}
			}
			catch (ex){
				alert(ex);
			}		
		}
		else{
			try{
				var params = new Object();
					params.cod_nota = this._mdlNotas.getValue(0, this._tblNotas.getFocusedRow());
					params.texto = this._txaNota.getValue();
				var resModificar = this._rpcAnotador.callSync("modificar", params);
					alert("Nota guardada");
			}
			catch (ex){
				alert(ex);
			}			
		}
		
	},
	_nueva:function(){
		this._txaNota.getLabel().setValue("Nueva Nota");
		this._txaNota.getText().setValue("");
		this._txaNota.focus();
	},
	_eliminar:function(){
		if(confirm("Eliminar Nota?")){
			try{
				var params = new Object();
					params.cod_nota = this._mdlNotas.getValue(0, this._tblNotas.getFocusedRow());
					
				var resEliminar = this._rpcAnotador.callSync("eliminar", params);
					alert("Nota Eliminada");
					this._initForm();
			}
			catch (ex){
				alert(ex);
			}
		}
	}	
}
});